home *** CD-ROM | disk | FTP | other *** search
/ Aminet 12 / Aminet 12 (1996)(GTI - Schatztruhe)[!][Jun 1996].iso / Aminet / util / batch / Count.lha / Count / ESRC / count.e
Encoding:
Text File  |  1996-03-24  |  2.1 KB  |  104 lines

  1. /*
  2.  
  3.  Count V1.0
  4.  
  5.  (c) 1996 PANDEMONIUM
  6.  
  7.  written by Jan 'Halfbyte' Krutisch (halfbyte@arda.shnet.org)
  8.  
  9.  This is Public Domain. Only THIS special Version is copyrighted.
  10.  Be fair and credit me...
  11.  
  12. */
  13.  
  14. MODULE 'dos/dos', 'dos/rdargs','dos/dosextens'
  15.  
  16. PROC main()
  17.  
  18. DEF args=NIL            :PTR TO rdargs, -> My Arg-Pointer
  19.     myargs              :PTR TO LONG,   -> The array of args
  20.     step,                               -> The step-count
  21.     varname[30]         :STRING,        -> Name of the ENV-Var
  22.     filename[40]        :STRING,        -> Complete Filename
  23.     lock                :PTR TO filelock, -> Lock of ENVVAR
  24.     file                :PTR TO filehandle, -> File of EnvVar
  25.     line[80]            :STRING,            -> Line in ENV-File
  26.     output,                                 -> The number
  27.     dummy                                   -> Just as it says...
  28.  
  29. DEF varstring[30]       :STRING
  30.  
  31. -> Defining Version Number
  32.  
  33. StrCopy(varstring,'$VER: Count 1.0 (24.3.96)')
  34.  
  35. -> ************** ReadArgs Magic :)
  36.  
  37. myargs:=[0,0]
  38. args:=ReadArgs('V=VAR/K,S=STEP/N/K',myargs,NIL)
  39. IF args<>NIL
  40.    IF myargs[0]<>NIL
  41.       StrCopy(varname,myargs[0],30)
  42.    ELSE
  43.       StrCopy(varname,'COUNT_DEF')
  44.    ENDIF
  45.  
  46.    IF myargs[1]<>NIL
  47.       step:=Long(myargs[1])
  48.    ELSE
  49.       step:=1
  50.    ENDIF
  51.    FreeArgs(args)
  52. ENDIF
  53.  
  54. -> Setting Default Value
  55.  
  56. output:=0
  57.  
  58. -> ************ Getting whole ENV-VAR-Path (Do it with AddPart !!! )
  59.  
  60. StrCopy(filename,'ENV:')
  61. StrAdd(filename,varname,20)
  62.  
  63. -> ************ Reading ENV-Var
  64.  
  65. lock:=Lock(filename,EXCLUSIVE_LOCK)
  66. IF lock
  67.    file:=OpenFromLock(lock)
  68.    IF file
  69.       dummy:=Fgets(file,line,20)
  70.       Close(file)
  71.    ENDIF
  72.    UnLock(lock)
  73. ENDIF
  74.  
  75. -> ************ Calculation (Using the secret "Add" algorythm)
  76.  
  77. output:=Val(line)
  78. output:=output+step
  79. StringF(line,'\d',output)
  80.  
  81. -> ************ Writing ENV VAR Back
  82.  
  83. IF EstrLen(varname)<>0
  84.  
  85. file:=Open(filename,MODE_NEWFILE)
  86. IF file
  87.    Fputs(file,line)
  88.    Close(file)
  89. ENDIF
  90.  
  91. -> ************ Doing STDOUT-Output for direct CLI-Usage
  92.  
  93. WriteF('\z\d',output)
  94. dummy:=0
  95.  
  96. ELSE
  97.  
  98. WriteF('Wrong options or missing values.\n Please check\n')
  99. dummy:=20
  100. ENDIF
  101.  
  102. ENDPROC dummy  -> Thats was it !!!!
  103.  
  104.